home *** CD-ROM | disk | FTP | other *** search
/ Shareware Games Galore! / Shareware Games Galore!.iso / arcade / gameser5 / 1500.bas (.txt) next >
Encoding:
GW-BASIC  |  1980-01-01  |  5.3 KB  |  181 lines

  1. 10  CLS:KEY OFF
  2. 20  REM WRITTEN BY W.A.BURTON NOV.1977
  3. 30  REM ADAPTED FOR IBM PC BY CHARLIE VELLA, 1983
  4. 40  PRINT CHR$(26) : WIDTH 80
  5. 50  PRINT TAB(20); "***  1500 GAME   ***"
  6. 60  PRINT : PRINT : PRINT 
  7. 70  INPUT "              DOES ANYONE NEED INSTRUCTIONS"; A$
  8. 80  IF LEFT$(A$,1)="Y" THEN GOSUB 1410
  9. 90  CLEAR : BL$=" " : GF=0
  10. 100  PRINT CHR$(26)
  11. 110  INPUT "                   HOW MANY PLAYERS (2 TO 7)"; P
  12. 120  PRINT CHR$(26)
  13. 130  IF P<2 OR P>7 OR P<>INT(P) THEN PRINT "WRONG !!"; : GOTO 110
  14. 140  DIM PL$(P), PS(P), DI(3), Q(P)
  15. 150  FOR X=1 TO P
  16. 160  PRINT "PLAYER #"; X; : INPUT "WHAT IS YOUR NAME "; PL$(X)
  17. 170  GOSUB 1080 : A=0
  18. 180  NEXT X
  19. 190  GOSUB 1190
  20. 200  '
  21. 210  '
  22. 220  '
  23. 230  REM MAIN MODULE
  24. 240  PRINT "HIT RETURN TO PLAY" :
  25. 250  A$=INKEY$:IF A$="" THEN 250
  26. 260  TF=0 : TP=0
  27. 270  GOSUB 540
  28. 280  GOSUB 580
  29. 290  GOSUB 650
  30. 300  IF Q(CO)=0 AND (TP+PS(CO))>=250 THEN Q(CO)=1 : ELSE 330
  31. 310  PRINT PL$(CO); ", YOU'RE QUALIFIED" 
  32. 320  PS(CO)=PS(CO)+TP : GOTO 400
  33. 330  IF Q(CO)=1 THEN 370
  34. 340  IF Q(CO)=0 AND TF=0 THEN 270 
  35. 350  IF Q(CO)=0 AND TF=1 THEN PRINT "SORRY, "; PL$(CO); ", YOU BUSTED" ELSE 390
  36. 360  PRINT : GOTO 390
  37. 370  IF TF=1 THEN PRINT TAB(15); "BUSTED" ELSE 460
  38. 380  PRINT
  39. 390  PS(CO)=PS(CO)+TP
  40. 400  CO=CO+1
  41. 410  IF CO>P THEN CO=1
  42. 420  PRINT PL$(CO); ", HIT RETURN FOR YOUR TURN"
  43. 430  A$=INKEY$:IF A$="" THEN 430
  44. 440  GOSUB 990
  45. 450  GOTO 260
  46. 460  A$="TRAP"
  47. 470  INPUT "                     DO YOU WANT TO ROLL AGAIN "; A$ : PRINT
  48. 480  IF LEFT$(A$,1)="Y" THEN 270
  49. 490  IF LEFT$(A$,1)="N" THEN 390
  50. 500  PRINT "TRY AGAIN !!"; : GOTO 460
  51. 510  '
  52. 520  '
  53. 530  '
  54. 540  REM THIS 'ROLLS' THE DICE & CHECKS FOR 'TRIPLES'
  55. 550  FOR X=1 TO 3
  56. 560  DI(X)=INT(RND(1)*6)+1
  57. 570  NEXT
  58. 580  REM CHECK FOR 'TRIPS'
  59. 590  TR$=""
  60. 600  IF DI(1)=DI(2) AND DI(2)=DI(3) THEN TR$=" ** TRIPLE **"
  61. 610  RETURN
  62. 620  '
  63. 630  '
  64. 640  '
  65. 650  REM THIS PRINTS OUT PLAYER'S SCORE
  66. 660  PRINT PL$(CO); ", YOUR ROLL WAS";
  67. 670  PRINT BL$; DI(1); BL$; DI(2); BL$; DI(3); TR$
  68. 680  PRINT : GOSUB 750
  69. 690  PRINT TAB(15); "YOUR SCORE FOR THIS TURN   "; TP
  70. 700  IF Q(CO)=0 THEN PRINT
  71. 710  RETURN
  72. 720  '
  73. 730  '
  74. 740  '
  75. 750  REM THIS COMPUTES PLAYER'S SCORE
  76. 760  IF TR$<>"" THEN 880
  77. 770  IF DI(1)=5 THEN TP=TP+50
  78. 780  IF DI(2)=5 THEN TP=TP+50
  79. 790  IF DI(3)=5 THEN TP=TP+50
  80. 800  IF DI(1)=6 THEN TP=TP+100
  81. 810  IF DI(2)=6 THEN TP=TP+100
  82. 820  IF DI(3)=6 THEN TP=TP+100
  83. 830  IF DI(1)<5 AND DI(2)<5 AND DI(3)<5 THEN TF=1 : TP=0 : RETURN
  84. 840  GOTO 920
  85. 850  '
  86. 860  '
  87. 870  '
  88. 880  REM SCORING FOR 'TRIPLES'
  89. 890  X=DI(1)*100
  90. 900  IF X<500 THEN TP=0 : TP=TP-X  : GOTO 920
  91. 910  TP=TP+X
  92. 920  IF TP<50 THEN TF=1
  93. 930  EG=PS(CO)+TP
  94. 940  IF EG>=1500 THEN GF=1 : GOTO 1260
  95. 950  RETURN
  96. 960  '
  97. 970  '
  98. 980  '
  99. 990  REM PRINT SCORES TO DATE
  100. 1000  IF GF=0 THEN PRINT "GAME SCORE"; ELSE PRINT "FINAL SCORE";
  101. 1010  FOR X=1 TO P
  102. 1020  PRINT TAB(15); PL$(X); TAB(27); PS(X)
  103. 1030  NEXT X : PRINT
  104. 1040  RETURN
  105. 1050  '
  106. 1060  '
  107. 1070  '
  108. 1080  REM 'SEED' RANDOM NUMBER GENERATOR
  109. 1090  FOR X1=1 TO LEN(PL$(X))
  110. 1100  A=A+ASC(MID$(PL$(X),X1,1))
  111. 1110  NEXT X1
  112. 1120  A=A MOD 137
  113. 1130  FOR X1=1 TO A
  114. 1140  A1=RND(1) : A1=RND(-X1)
  115. 1150  NEXT X1 : RETURN
  116. 1160  '
  117. 1170  '
  118. 1180  '
  119. 1190  REM THIS DECIDES WHO WILL GO FIRST
  120. 1200  X=INT(RND(1)*P)+1
  121. 1210  PRINT CHR$(26) : PRINT PL$(X); ", YOU WILL START THIS GAME" : PRINT : PRINT
  122. 1220  CO=X : RETURN
  123. 1230  '
  124. 1240  '
  125. 1250  '
  126. 1260  REM WIN ROUTINE
  127. 1270  PRINT CHR$(26)
  128. 1280  PRINT TAB(22); "*** WINNER ***" : PRINT : PRINT : PRINT
  129. 1290  PRINT TAB(12); PL$(CO); ", YOUR WINNING ROLL WAS   ";
  130. 1300  PRINT DI(1); DI(2); DI(3) : PRINT : PRINT : PRINT
  131. 1310  PRINT TAB(12); PL$(CO); " WINS WITH"; PS(CO)+TP; "POINTS" : PRINT : PRINT : PRINT
  132. 1320  PS(CO)=EG
  133. 1330  GOSUB 990
  134. 1340  A$="TRAP" : INPUT "ANOTHER GAME (Y OR N)"; A$
  135. 1350  IF LEFT$(A$,1)="Y" THEN RUN 90
  136. 1360  IF LEFT$(A$,1)="N" THEN PRINT CHR$(26) : RESET : END
  137. 1370  PRINT "NICE TRY  "; : GOTO 1340
  138. 1380  '
  139. 1390  '
  140. 1400  '
  141. 1410  REM INSTRUCTIONS
  142. 1420  PRINT CHR$(26)
  143. 1430  PRINT TAB(20); "***    INSTRUCTIONS    ***" : PRINT 
  144. 1440  PRINT "THREE DICE ARE ROLLED, AND ARE SCORED AS FOLLOWS:" : PRINT
  145. 1450  PRINT "    EACH '6' ROLLED SCORES 100 POINTS"
  146. 1460  PRINT "    EACH '5' ROLLED SCORES  50 POINTS" : PRINT
  147. 1470  PRINT "FOR EXAMPLE: A ROLL OF '6  5  1' IS WORTH 150 POINTS - 100 POINTS"
  148. 1480  PRINT "FOR THE '6' AND 50 POINTS FOR THE '5';  (NOTHING FOR THE '1')." : PRINT
  149. 1490  PRINT "WHEN YOU ROLL 3 OF A KIND, THE SCORING IS AS FOLLOWS:" : PRINT
  150. 1500  PRINT "    THREE 1'S    - 100 POINTS"
  151. 1510  PRINT "    THREE 2'S    - 200 POINTS"
  152. 1520  PRINT "    THREE 3'S    - 300 POINTS"
  153. 1530  PRINT "    THREE 4'S    - 400 POINTS"
  154. 1540  PRINT "    THREE 5'S    + 500 POINTS"
  155. 1550  PRINT "    THREE 6'S    + 600 POINTS" : PRINT
  156. 1560  PRINT "GET THE IDEA...?" : PRINT
  157. 1570  PRINT "HIT RETURN MORE INSTRUCTIONS" : WAIT 0,1,1
  158. 1580  A$=INKEY$:IF A$="" THEN 1580
  159. 1590  PRINT "THE GAME CONSISTS OF THREE PHASES..." : PRINT
  160. 1600  PRINT TAB(12); "PHASE 1 - WHO GOES FIRST"
  161. 1610  PRINT TAB(12); "PHASE 2 - QUALIFYING (REACH 250 POINTS) PHASE"
  162. 1620  PRINT TAB(12); "PHASE 3 - WHO WINS (REACHES 1500 POINTS FIRST)" : PRINT
  163. 1630  PRINT "THE COMPUTER DECIDES WHO GOES FIRST, THEN THE COMPUTER WILL CONTINUE"
  164. 1640  PRINT "TO ROLL FOR EACH PLAYER UNTIL THAT PLAYER REACHES 250 POINTS OR UNTIL"
  165. 1650  PRINT "THAT PLAYER HAS A ROLL WITH NO '5' OR '6', AT WHICH POINT THE SCORE"
  166. 1660  PRINT "FOR THAT PLAYER IS RESET TO ZERO (UNLESS TRIPLES LESS THAN FIVE ARE"
  167. 1670  PRINT "THROWN - IN WHICH CASE THAT PLAYER'S SCORE MAY WELL GO BELOW ZERO)."
  168. 1680  PRINT "IN THIS PHASE (2) EACH PLAYER WILL EITHER REACH (OR EXCEED) 250 OR"
  169. 1690  PRINT "BE RESET TO ZERO (OR LESS). WHEN A PLAYER HAS QUALIFIED, PLAY PASSES"
  170. 1700  PRINT "TO NEXT PLAYER. AFTER QUALIFYING, COMPUTER ROLLS ONCE, IF THAT ROLL"
  171. 1710  PRINT "RESULTS IN SCORE LESS THAN 50, TURN WILL PASS TO NEXT PLAYER. IF THAT"
  172. 1720  PRINT "PLAYER SCORES 50 (OR MORE) POINTS, THEN THAT PLAYER CAN DECIDE WHETHER"
  173. 1730  PRINT "TO TAKE (AND KEEP) THE POINTS FROM THAT ROLL OR TO ROLL AGAIN IN HOPE"
  174. 1740  PRINT "OF GETTING MORE POINTS. ANY ROLL OF LESS THAN 50 POINTS WILL CANCEL"
  175. 1750  PRINT "ALL POINTS EARNED ON THAT TURN. FIRST PLAYER TO REACH 1500 WINS. IT"
  176. 1760  PRINT "IS ONLY NECESSARY TO 'QUALIFY' ONCE IN ANY GIVEN GAME, AND SCORING"
  177. 1770  PRINT "RELATED TO 'TRIPLES' IS IN EFFECT DURING ALL PHASES OF THE GAME."
  178. 1780  PRINT : PRINT "HIT RETURN TO PLAY" :
  179. 1790  A$=INKEY$:IF A$="" THEN 1790
  180. 1800  RETURN
  181.